package bu.utils;

import android.content.Context;
import android.widget.Toast;

/**
 * Author      : BWj
 * Date        : 2018/12/27
 * Description : Toast工具类
 */
public class ToastUtil {
    private static boolean isShow = true;//默认显示
    private static Toast toast = null;

    /*private控制不应该被实例化*/
    private ToastUtil() {
        throw new UnsupportedOperationException("不能被实例化");
    }

    /**
     * 全局控制是否显示Toast
     *
     * @param isShowToast
     */
    public static void setIsShow(boolean isShowToast) {
        isShow = isShowToast;
    }

    /**
     * Toast  短
     *
     * @param context 上下文
     * @param msg     显示的信息
     */
    public static void shortShow(Context context, CharSequence msg) {
        show(context, msg, Toast.LENGTH_SHORT);
    }

    /**
     * Toast  短
     *
     * @param context     上下文
     * @param stringResId string资源ID
     */
    public static void shortShow(Context context, int stringResId) {
        show(context, stringResId, Toast.LENGTH_SHORT);
    }

    /**
     * Toast  长
     *
     * @param context 上下文
     * @param msg     显示的信息
     */
    public static void longShow(Context context, CharSequence msg) {
        show(context, msg, Toast.LENGTH_LONG);
    }

    /**
     * Toast  长
     *
     * @param context     上下文
     * @param stringResId string资源ID
     */
    public static void longShow(Context context, int stringResId) {
        show(context, stringResId, Toast.LENGTH_LONG);
    }

    /**
     * 显示Toast
     *
     * @param context     上下文
     * @param stringResId string资源ID
     * @param duration    Toast.LENGTH_SHORT/Toast.LENGTH_LONG
     */
    private static void show(Context context, int stringResId, int duration) {
        if (toast == null) {
            toast = Toast.makeText(context, stringResId, duration);
        } else {
            toast.setText(stringResId);
        }
        toast.show();
    }

    /**
     * 显示Toast
     *
     * @param context  上下文
     * @param msg      显示的信息
     * @param duration Toast.LENGTH_SHORT/Toast.LENGTH_LONG
     */
    private static void show(Context context, CharSequence msg, int duration) {
        if (isShow) {
            if (toast == null) {
                toast = Toast.makeText(context, msg, duration);
            } else {
                toast.setText(msg);
            }
            toast.show();
        }
    }
}
